#pragma once

#include "Algoritmo1D.h"
#include "BernsteinPol.h"


// Por ahora es solo para las curvas
class Bezier : public Algoritmo1D {
public:
	Bezier();

	virtual void init(std::vector<glm::vec3> vecPtsControl);

	// La curva solo esta definida en el intervalo [0; 1]
	virtual glm::vec3 eval(float u) const;

	// Definen el intervalo del algoritmo
	virtual float getLimiteSuperior() const;
	virtual float getLimiteInferior() const;

private:
	const float m_limInferior;
	const float m_limSuperior;

	BernsteinPol m_bernsPoli;
	std::vector< glm::vec3 > m_ptsControl;
};

